home *** CD-ROM | disk | FTP | other *** search
/ L' Effet Pommier 3 / L'Effet Pommier - Volume 03.iso / Programmation / Alpha ƒ / Tcl / SystemCode / strings.tcl < prev    next >
Text File  |  1995-02-26  |  2KB  |  66 lines

  1. #=============================================================================
  2. # 'Strings' commands - Thanks, Mark Nagata
  3. #=============================================================================
  4.  
  5. proc setPrefix {} {
  6.     global prefixString
  7.     if {[catch {prompt "New Prefix String:" $prefixString} res] == 1} return
  8.     set prefixString $res
  9. }
  10.  
  11. proc setSuffix {} {
  12.     global suffixString
  13.     if {[catch {prompt "New Suffix String:" $suffixString} res] == 1} return
  14.     set suffixString $res
  15. }
  16.  
  17. proc insertSuffix {} {doSuffix insert}
  18. proc removeSuffix {} {doSuffix remove}
  19. proc doSuffix {which} {
  20.     global suffixString
  21.     set suff [quoteExpr $suffixString]
  22.     set pts [getEndpts]
  23.     set start [lindex $pts 0]
  24.     set end [lindex $pts 1]
  25.     set start [lineStart $start]
  26.     set end [nextLineStart [expr $end-1]]
  27.     set text [getText $start $end]
  28.     deleteText $start $end
  29.     if {$which == "insert"} then {
  30.         set str ${suffixString}\r
  31.         regsub -all \r $text $str text
  32.     } else {
  33.         set str ${suff}\r
  34.         regsub -all $str $text \r text
  35.     }
  36.     insertText $text
  37.     select $start [expr {$start+[string length $text]}]
  38. }
  39.  
  40.  
  41. proc commentLine {} {insertPrefix}
  42. proc uncommentLine {} {removePrefix}
  43. proc insertPrefix {} {doPrefix insert}
  44. proc removePrefix {} {doPrefix remove}
  45. proc doPrefix {which} {
  46.     global prefixString
  47.     set pref [quoteExpr $prefixString]
  48.     if {[set start [getPos]] == [set end [selEnd]]} {
  49.         set end [nextLineStart $start]
  50.     }
  51.     set start [lineStart $start]
  52.     if {[lookAt [expr $end-1]] == "\r"} {incr end -1}
  53.     set text [getText $start $end]
  54.     if {$which == "insert"} then {
  55.         set str \r$prefixString
  56.         regsub -all \r $text $str text
  57.         replaceText    $start $end $prefixString$text
  58.     } else {
  59.         regsub -all \r$pref $text \r text
  60.         regsub -all ^$pref $text "" text
  61.         replaceText $start $end $text
  62.     }
  63.     select $start [nextLineStart [getPos]]
  64. }
  65.  
  66.